package com.zxy.pojo.vo;


import lombok.Data;

import java.time.LocalDateTime;

/**
 * 日志查询响应VO（给前端返回的日志数据）
 */
@Data
public class OperLogVO {
    /**
     * 日志ID
     */
    private Long id;

    /**
     * 操作标题（如“合同分页查询”）
     */
    private String title;

    /**
     * 操作人员
     */
    private String operName;

    /**
     * 业务类型（0其它 1新增 2修改 3删除）
     */
    private Integer businessType;

    /**
     * 业务类型名称（前端显示用，如“新增”）
     */
    private String businessTypeName;

    /**
     * 请求URL
     */
    private String operUrl;

    /**
     * 请求方式（GET/POST/PUT/DELETE）
     */
    private String requestMethod;

    /**
     * 操作IP
     */
    private String operIp;

    /**
     * 操作地点
     */
    private String operLocation;

    /**
     * 操作状态（0正常 1异常）
     */
    private Integer status;

    /**
     * 操作状态名称（前端显示用，如“正常”）
     */
    private String statusName;

    /**
     * 操作时间
     */
    private LocalDateTime operTime;

    /**
     * 错误消息（仅异常时显示）
     */
    private String errorMsg;

    // 【可选】类型转换：业务类型code转名称（也可在Service中处理）
    public void setBusinessType(Integer businessType) {
        this.businessType = businessType;
        // 映射业务类型名称
        switch (businessType) {
            case 1:
                this.businessTypeName = "新增";
                break;
            case 2:
                this.businessTypeName = "修改";
                break;
            case 3:
                this.businessTypeName = "删除";
                break;
            default:
                this.businessTypeName = "其它";
        }
    }

    // 【可选】类型转换：状态code转名称
    public void setStatus(Integer status) {
        this.status = status;
        this.statusName = status == 0 ? "正常" : "异常";
    }
}
